/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Modelo;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;

import java.util.Date;


/**
 *
 * @author PeÑa
 */
public class PedidosBD {

    private static Connection con;
    private static Statement st;
    private static ResultSet resultado;

    public static boolean registrarPedido(ArrayList<Producto> carrito, Cliente usuario) {
        boolean rpta = false;
        try {
            con = Conexion.getConexion();
            st = con.createStatement();
           DateFormat formato = new SimpleDateFormat("yyyy/MM/dd");
           Date F= new Date();
            String fechaPedido = formato.format(F);
             Calendar c1 = Calendar.getInstance();
             c1.add(Calendar.DATE, 5); //le suma 5 días
             String fechaEntrega =formato.format(c1.getTime());
            int idUsuario = usuario.getId();
            int idPedido = obtenerMaxIdPedido() + 1;
            String consulta = "INSERT INTO pedidos(id_Pedido, id_cliente, fecha_pedido, fecha_entrega, estado) VALUES ('" + idPedido + "', '" + idUsuario + "', '" + fechaPedido + "','"+ fechaEntrega +"','0')";
            rpta = st.executeUpdate(consulta) == 1 ? true : false;
            if (rpta) {
               
                for (Producto prod :carrito) {
                                       rpta = DetallePedidoBD.insertarDetallePedido(idPedido, prod.getId(), prod.getCantidad());
                    if (!rpta) {
                        break;
                    }
                }
            }
           
        } catch (Exception e) {
        return false;
        }
        return rpta;
    }

    public static ArrayList<Pedido> obtenerPedidos(int idCliente) {

        try {
            ArrayList<Pedido> ventas = new ArrayList<Pedido>();
            con = Conexion.getConexion();
            st = con.createStatement();
            resultado = st.executeQuery("select * from pedidos where id_cliente=" + idCliente);
            while (resultado.next()) {
                Pedido venta = new Pedido();
                int idPedido = resultado.getInt("id_pedido");
                venta.setFecha(resultado.getString("fecha"));
                venta.setIdPedido(idPedido);
                venta.setEstado(resultado.getInt("estado"));
                venta.setUsuario(ClientesBD.obtenerCliente(idCliente));
                venta.setDetallePedido(DetallePedidoBD.obtenerDetalle(idPedido));
                ventas.add(venta);
            }
            return ventas;
        } catch (Exception ex) {
        }

        return null;
    }
    
    

    public static int obtenerMaxIdPedido() {
        int maxId = 0;
        try {
            con = Conexion.getConexion();
            st = con.createStatement();
            resultado = st.executeQuery("select * from pedidos order by id_pedido desc");
            if (resultado.next()) {
                maxId = resultado.getInt("id_pedido");
                return maxId;
            }
        } catch (Exception e) {
        }
        return maxId;
    }
    
   
}
